Previous: Property Lists, Up: Symbols [Contents][Index]
These functions create unique symbols, typically for use as temporary variables.
This function creates a new, uninterned symbol (using
make-symbol) with a unique name. (The name of an
uninterned symbol is relevant only if the symbol is printed.)
By default, the name is generated from an increasing sequence
of numbers, ‘G1000’,
‘G1001’,
‘G1002’, etc. If the optional
argument x is a string, that string is used as a
prefix instead of ‘G’. Uninterned
symbols are used in macro expansions for temporary variables,
to ensure that their names will not conflict with
“real” variables in the user’s code.
(Internally, the variable cl--gensym-counter
holds the counter used to generate names. It is initialized
with zero and incremented after each use.)
This function is like cl-gensym, except that
it produces a new interned symbol. If the symbol
that is generated already exists, the function keeps
incrementing the counter and trying again until a new symbol
is generated.
This package automatically creates all keywords that are
called for by &key argument specifiers, and
discourages the use of keywords as data unrelated to keyword
arguments, so the related function defkeyword (to
create self-quoting keyword symbols) is not provided.